/**
 * @Description : 客户旅游画像JS
 * @return void
 * @author :likun
 * @date : 2016年7月15日
 * 
 * 
 * */
srvMap.add('queryAgeLevel','','front/sh/tourist!execute?uid=queryAgeLevel');
srvMap.add('querySexualLevel','','front/sh/tourist!execute?uid=querySexualLevel');
srvMap.add('queryProvLevel','','front/sh/tourist!execute?uid=queryProvLevel');
srvMap.add('queryCunsumeLevel','','front/sh/tourist!execute?uid=queryCunsumeLevel');
srvMap.add('querydeviceNameLevel','','front/sh/tourist!execute?uid=querydeviceNameLevel');
var now_Date = new Date();
var COLOR_CIRCLE=6;//颜色循环默认值
var COLORATTR=['#ADD67E','#FFAB8E','#AFBEFF','#FFCD7A','#94C8FF','#FA9885'];//消费档次默认基础颜色
Date.prototype.Format = function(fmt)   
{ //author: meizz   
  var o = {   
    "M+" : this.getMonth()+1,                 //月份   
    "d+" : this.getDate(),                    //日   
    "h+" : this.getHours(),                   //小时   
    "m+" : this.getMinutes(),                 //分   
    "s+" : this.getSeconds(),                 //秒   
    "q+" : Math.floor((this.getMonth()+3)/3), //季度   
    "S"  : this.getMilliseconds()             //毫秒   
  };   
  if(/(y+)/.test(fmt))   
    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
  for(var k in o)   
    if(new RegExp("("+ k +")").test(fmt))   
  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
  return fmt;   
};
/**
 * load页面
 * */
$(function() {
	initThisDom();
});
/**
 * 初始化页面
 * */
function initThisDom(){
	
	Util.loadUpInfo.initCityList();
	Util.loadUpInfo.initRegionTypleList();
	Util.loadUpInfo.initRegionList();
	var firstCitySelectId=$('#cityListInfo').find('li:first').attr('d_value');
//	//querydeviceNameLevel(firstCitySelectId,'','78000000001','day',now_Date.format("2016-06-08").replace(/-/g,''));
	initDataTime();
	var date=new Date(now_Date.getTime() - 24*60*60*1000).format("yyyy-MM-dd"); 
	var Mon=new Date(now_Date.getTime() - 30*24*60*60*1000).format("yyyy-MM"); 
	var regionId='';
	if( in_regionId != null && in_regionId.length > 0 ){
		$("#divselectInput").val(in_regionName);
		$("#inputselect").val(in_regionId);
		regionId=in_regionId
	}
	queryAgeLevel(firstCitySelectId,'',regionId,'day',date.replace(/-/g,''));
	querySexualLevel(firstCitySelectId,'',regionId,'day',date.replace(/-/g,''));
	queryProvLevel(firstCitySelectId,'',regionId,'day',date.replace(/-/g,''));
	queryCunsumeLevel(firstCitySelectId,'',regionId,'day',date.replace(/-/g,''));
	querydeviceNameLevel(firstCitySelectId,'',regionId,'day',date.replace(/-/g,''));
	$("#dayStart").val(date);
	$("#monthStart").val(Mon);
	//绑定日期类型radio切换事件
	$('input[name=dataTimeType]').on("change",function(){
		if( $(this).val() == "day" ){
			$("#dayStartDiv").show();
			$("#monthStartDiv").hide();
			queryAll();
		}else{
			$("#monthStartDiv").show();
			$("#dayStartDiv").hide();
			queryAll();
		}
	});
	
};	
/**
 * 时间非空校验
 * */
function validateTime(){
	var single=true;
	var stateDate=$('#dateTime').find('input:visible').val();
	if(stateDate==''){
		single=false;
	}
	return single;
}




/**
 * 
 * @Description : 初始化时间控件
 * @return void
 * 
 * @author : xuxiong
 * @date : 2015年12月10日 下午10:05
 * 
 */
function initDataTime() {
	var dayStart = {
		elem: '#dayStart',
		format: 'YYYY-MM-DD',
		start: laydate.now(-183),
		min: laydate.now(-183),
		max: laydate.now(-1), //最大日期
		istime: false,
		festival: true,
		istoday: true,
		choose: function(datas){
			dayEnd.min = datas; //开始日选好后，重置结束日的最小日期
			dayEnd.start = datas //将结束日的初始值设定为开始日
	    }
	};
	var preMonth = getPreMonth(laydate.now());
	var preYear = laydate.now(-365).slice(0,7);
	var monthStart = {
		elem: '#monthStart',
		format: 'YYYY-MM',
		start:preMonth,
		min: preYear,
		max:preMonth,
		istime: false,
		festival: true,
		istoday: false,
	};
		
	laydate(dayStart);
	
	laydate(monthStart);
	
	//默认展示前12个月的数据
	$("#monthStart").val(preYear.slice(0,7));
};
/**
 * 获取当前时间上一个月日期
 * @Description : 
 * 
 * @return void
 *
 * @author : xuxiong
 * @date : 2015年12月18日 下午5:40:08 
 *
 */
function getPreMonth(date) {
    var arr = date.split('-');
    var year = arr[0]; //获取当前日期的年份
    var month = arr[1]; //获取当前日期的月份
    var day = arr[2]; //获取当前日期的日
    var days = new Date(year, month, 0);
    days = days.getDate(); //获取当前日期中月的天数
    var year2 = year;
    var month2 = parseInt(month) - 1;
    if (month2 == 0) {
        year2 = parseInt(year2) - 1;
        month2 = 12;
    }
    var day2 = day;
    var days2 = new Date(year2, month2, 0);
    days2 = days2.getDate();
    if (day2 > days2) {
        day2 = days2;
    }
    if (month2 < 10) {
        month2 = '0' + month2;
    }
    var t2 = year2 + '-' + month2 + '-' + day2;
    return t2;
}


/**查询年龄结构
 * */
function queryAgeLevel(cityId,regionType,regionId,dateType,stateDate){
	var par='cityId='+cityId+'&regionId='+regionId+'&regionType='+regionType+'&dateType='+dateType+'&stateDate='+stateDate;
	Util.ajax.postJsonSync(srvMap.get('queryAgeLevel'),par,function(json,status){
		if(status){ 
			var objAttr=json.object;
			if(objAttr.length==0||objAttr.length==1||objAttr.length==2){
				$('#small').html('0');
				$('#middle').html('0');
				$('#large').html('0');
			}
 			else {
				for (var i = 0; i < objAttr.length; i++) {
					if (objAttr[i] == '') {
						objAttr[i] = '0';
					}
				}
				$('#small').html(objAttr[0].vstPersonCnts);
				$('#middle').html(objAttr[1].vstPersonCnts);
				$('#large').html(objAttr[2].vstPersonCnts);
			}
		}else{
			 alert('查询年龄结构数据出错！');   
		}
	});
};
/**
 * 查询性别旅游人数结构
 * */
function querySexualLevel(cityId,regionType,regionId,dateType,stateDate){
	var par='cityId='+cityId+'&regionId='+regionId+'&regionType='+regionType+'&dateType='+dateType+'&stateDate='+stateDate;
	Util.ajax.postJsonSync(srvMap.get('querySexualLevel'),par,function(json,status){
		if (status) {
			var objAttr = json.object;
			$('#maleCount').html(objAttr.maleCount);
			$('#femaleCount').html(objAttr.femaleCount);
		}else{
			 alert('查询性别旅游人数数据出错！');   
		}
	});
};
/**
 * 查询户籍旅游人数结构
 * */
function queryProvLevel(cityId,regionType,regionId,dateType,stateDate){
	var par='cityId='+cityId+'&regionId='+regionId+'&regionType='+regionType+'&dateType='+dateType+'&stateDate='+stateDate;
	Util.ajax.postJsonSync(srvMap.get('queryProvLevel'),par,function(json,status){
		if (status) {
			buildstayLevelBar(json.beans);
		}else{
			 alert('查询户籍旅游人数数据出错！');   
		}
	});
};
/**
 * 查询消费水平旅游人数结构
 * */
function queryCunsumeLevel(cityId,regionType,regionId,dateType,stateDate){
	var par='cityId='+cityId+'&regionId='+regionId+'&regionType='+regionType+'&dateType='+dateType+'&stateDate='+stateDate;
	Util.ajax.postJsonSync(srvMap.get('queryCunsumeLevel'),par,function(json,status){
		if (status) {
			buildconsumeLevelBar(json.beans);
		}else{
			 alert('查询消费水平数据出错！');   
		}
	});
};
/**
 * 查询手机品牌旅游人数结构
 * */
function querydeviceNameLevel(cityId,regionType,regionId,dateType,stateDate){
	var par='cityId='+cityId+'&regionId='+regionId+'&regionType='+regionType+'&dateType='+dateType+'&stateDate='+stateDate;
	Util.ajax.postJsonSync(srvMap.get('querydeviceNameLevel'),par,function(json,status){
		if (status) {
			builddeviceNamePie(json.beans);
		}else{
			 alert('查询手机品牌数据出错！');   
		}
	});
};
var stayLevelBarCharts; //户籍地址条形图
var consumeLevelBarCharts; //消费水平条形图
var deviceNamePieCharts; //消费水平条形图
/**
 * 
 * @Description : 手机品牌饼图
 * @return void
 * @author : likun
 * @date : 2016年7月26日
 * 
 */
function builddeviceNamePie(data) {
	hideLoading(deviceNamePieCharts);
	if (data== '') {
		noDataShowSource(deviceNamePieCharts, 'deviceNamePieCharts');
		return;
	};
   var deviceName=[];
   var vstPersonCnts=[];
   for (var i = 0; i < data.length; i++) {
	   deviceName.push(data[i].devicename);
	   vstPersonCnts.push(data[i].vstPersonCnts);
   };
	require.config({
		paths: {
			echarts: CONTENT_PATH + '/common/js'
		}
	});
	require(
		[
			'echarts',
			'echarts/chart/pie'
		],
		function(ec){
			option = {
				    title : {
				    },
				    tooltip : {
				        trigger: 'item',
				        formatter: "{a} <br/>{b} : {c}% ({d}%)"
				    },
				    color:['#FF916A','#FF64A6','#5FBDEC','#BAEE64','#23A7E6','#7CC9F1','#FFBE00','#72D13F','#EAEB61'],
				    legend: {
				        orient : 'vertical',
				        x : 'right',
				        data:deviceName
				    },
				 
				    calculable : false,
				    series : [
				        {
				            name:'占比',
				            type:'pie',
				            radius : '55%',
				            center: ['50%', '60%'],
				            data:[
									{value:vstPersonCnts[0], name:deviceName[0]},
									{value:vstPersonCnts[1], name:deviceName[1]},
									{value:vstPersonCnts[2], name:deviceName[2]},
									{value:vstPersonCnts[3], name:deviceName[3]},
									{value:vstPersonCnts[4], name:deviceName[4]},
									{value:vstPersonCnts[5], name:deviceName[5]},
									{value:vstPersonCnts[6], name:deviceName[6]},
									{value:vstPersonCnts[7], name:deviceName[7]},
									{value:vstPersonCnts[8], name:deviceName[8]}
									
								]
				        }
				    ]
				};
				                    
			deviceNamePieCharts = ec.init(document.getElementById('deviceNamePieCharts'));
			deviceNamePieCharts.clear();
			deviceNamePieCharts.setOption(option);	                    
		}
	);
};


/**
 * 
 * @Description : 户籍地址条形图
 * @return void
 * @author : likun
 * @date : 2016年7月21日
 * 
 */
function buildstayLevelBar(data) {
	hideLoading(stayLevelBarCharts);
	if (data== '') {
		noDataShowSource(stayLevelBarCharts, 'stayLevelBar');
		return;
	};
   var ayis=[];
   var xValue=[];
   for (var i = 0; i < data.length; i++) {
	   ayis.push(data[i].proName);
	   xValue.push(data[i].vstPersonCnts);
   };
   ayis.reverse();
   xValue.reverse();
	require.config({
		paths: {
			echarts: CONTENT_PATH + '/common/js'
		}
	});
	require(
		[
			'echarts',
			'echarts/chart/bar'
		],
		function(ec){
			option = {
				    tooltip : {
				        trigger: 'axis',
				        formatter: "{a} <br/>{b} : {c}% "
				    },
				    legend: {
				    	 data:[]
				    },
				    calculable : false,
				    grid: {
				        borderWidth: 0,
				    },
				    color:['#58DCA3'],
				    xAxis : [
				        {
				            type : 'value',
				            splitLine: {show:false},
				            boundaryGap : [0, 0.01],
				            axisLabel : {
				                formatter: '{value} %',
				                textStyle : {
				                	color : '#878787',
				                	}
				            },
				       }
				    ],
				    yAxis : [
				        {
				            type : 'category',
				            splitLine: {show:false},
				            data : ayis,
				            axisLabel : {
				                textStyle : {
				                	color : '#878787',
				                	}
				            },
				        }
				    ],
				    series : [
				              {
				                  name:'占比',
				                  type:'bar',
				                  data:xValue,
				                  barWidth:12,
				              },
				          ]
				};
			stayLevelBarCharts = ec.init(document.getElementById('stayLevelBar'));
			stayLevelBarCharts.clear();
			stayLevelBarCharts.setOption(option);	                    
		}
	);
};
/**
 * 
 * @Description : 消费水平条形图
 * @return void
 * @author : likun
 * @date : 2016年7月22日
 * 
 */

function buildconsumeLevelBar(data) {
	hideLoading(consumeLevelBarCharts);
	if (data== '') {
		noDataShowSource(consumeLevelBarCharts, 'consumeLevelBarCharts');
		return;
	};
   var xValue=[];
   var yValue=[];
   for (var i = 0; i < data.length; i++) {
	   xValue.push(data[i].consumeName);
	   yValue.push(data[i].vstPersonCnts);
   };
   var len=xValue.length;
   var i=0;
   while(len-COLOR_CIRCLE>0){
	   COLORATTR.push(COLORATTR[i]);
       len--;
      i++
   }
	require.config({
		paths: {
			echarts: CONTENT_PATH + '/common/js'
		}
	});
	require(
		[
			'echarts',
			'echarts/chart/bar'
		],
		function(ec){
			option = {
				    tooltip : {
				        trigger: 'axis',
				        formatter: "{a} <br/>{b} : {c}% "
				    },
				    legend: {
				    	 data:[],
				    	 show:false 
				    },
				    calculable : false,
				    xAxis : [
				        {
				            type : 'category',
				            splitLine: {show:false},
				            boundaryGap : [0, 0.01],
				            axisLabel : {
				            textStyle : {
				                	color : '#878787',
				                	},
				            rotate: 20,
				            },
				            data:xValue
				       }
				    ],
				    grid: { // 控制图的大小，调整下面这些值就可以，
                        x: '10%',
                        y: '18%',
                        width:'80%',
                        height:'66%',
                        x2:'5%',
                        y2:'15%',// y2可以控制 X轴跟Zoom控件之间的间隔，避免以为倾斜后造成 label重叠到zoom上
                        borderWidth: 0
                    },
				    yAxis : [
				        {   
				        	type : 'value',
				        	show:false,
				        	splitLine: {show:false},
				        }
				    ],
 				    series : [
				              {
				                  name:'占比',
				                  type:'bar',
				                  data:yValue,
				                  itemStyle : { normal: {label : {show: true, position: 'top'}}},
				                  barWidth:12,
				                  itemStyle: {
				                      normal: {
				                          color: function(params) {
				                        	  var colorList = COLORATTR;
				                              return colorList[params.dataIndex]
				                          }
				                      }
				                  }
				              },
				          ]
				};
			consumeLevelBarCharts = ec.init(document.getElementById('consumeLevelBarCharts'));
			consumeLevelBarCharts.clear();
			consumeLevelBarCharts.setOption(option);	                    
		}
	);
};








/**
 * 
 * @Description : echarts图表过滤动画隐藏
 * @return void
 * 
 * @author : xuxiong
 * @date : 2015年12月10日 下午10:05
 * 
 */
function hideLoading(chart) {
	if (chart != null) {
		chart.hideLoading();
	}
}

/**
 * 
 * @Description : echarts图表数据为空提示
 * @return void
 * 
 * @author : xuxiong
 * @date : 2015年12月10日 下午10:05
 * 
 */
function noDataShowSource(chart,id) {
	
	if (chart == null) {
		require.config({
			paths: {
				echarts: CONTENT_PATH + '/common/js'
			}
		});
		require(['echarts'], function(ec) {
			chart = ec.init(document.getElementById(id), 'macarons');
			chart.clear();
			showEmptyTip(chart);
		});
	} else {
		showEmptyTip(chart);
	}
}
/**
 * 
 * @Description : echarts图表数据为空提示
 * @return void
 * 
 * @author : xuxiong
 * @date : 2015年12月10日 下午10:05
 * 
 */
function showEmptyTip(chart) {
	chart.clear();
	if (chart != null) {
		chart.showLoading({
			text: '当前未查询到数据，请稍后再试',
			effect: 'bubble',
			textStyle: {
				fontSize: 22
			}
		});
	}
}


/**
 * 查询页面
 * */
function queryAll(){
	if(validateTime()){
	var cityId=$('#citySelectSpan').find('li').attr('d_value');
	var regionType=$('#regionTypleSelect').find('li').attr('d_value');
	var regionId=$('#inputselect').val();
	var dateType=$('input[name=dataTimeType]:checked').val();
	var stateDate=$('#dateTime').find('input:visible').val().replace(/-/g,'');
	queryAgeLevel(cityId,regionType,regionId,dateType,stateDate);
	querySexualLevel(cityId,regionType,regionId,dateType,stateDate);
	queryProvLevel(cityId,regionType,regionId,dateType,stateDate);
	queryCunsumeLevel(cityId,regionType,regionId,dateType,stateDate);
	querydeviceNameLevel(cityId,regionType,regionId,dateType,stateDate);
	}else{
		
		alert('请设置查询时间！')
	}
};





